feat(hook): Deliver events to integrations - #607
Conversation
b5394eb to
837e0d8
Compare
a09dcab to
b6aef89
Compare
837e0d8 to
b5394eb
Compare
b6aef89 to
a09dcab
Compare
|
🛑 Automatic stack rebase aborted — diff mismatch The rebase of Please rebase manually and verify the changes are correct. |
## Summary **What**: - Define the shared event format every domain publishes for fire-and-forget lifecycle notifications, carrying origin, type, timing, a staleness marker, and open per-event detail. - Derive an event's identity from the transition it describes, so replaying a transition produces the same identity and duplicate deliveries collapse. **Why**: - Enable integrations to react to pipeline milestones without adding call sites that can stall or fail a merge. - Establish one schema and one identity rule before any producer ships, so a consumer spanning several domains needs only one reader. ## Test Plan - [x] Add unit tests. ## Revert Plan - Revert this PR. No topic is registered and no message of this shape exists on any queue. ## Issues - [CODEM-416](https://linear.app/uber/issue/CODEM-416/hooks-integration-downstream-notificaiton) ## Stack 1. @ uber#606 1. uber#607 1. uber#608
| ) | ||
|
|
||
| // Hook performs a side effect in response to a lifecycle event. | ||
| type Hook interface { |
There was a problem hiding this comment.
my general question here is why is it an extension vs a plain consumer who gets hooks events from wire and implements consumer controller? why it needs to be an interface?
| // on. Dropping an observability row costs a gap in a read model; dropping a | ||
| // merge-failure comment costs a support ticket, and nothing else in the system | ||
| // will notice it is missing. | ||
| type DLQController struct { |
There was a problem hiding this comment.
do we need to provide DLQ Hook extension as well? so we do think in most cases, there is nothing to really reconcile, but say for example, I want to close PR when merge is done and for whatever reason that fails..should we have ability to handle those from retries and DLQ? just a thought, we don't need to support as such
a09dcab to
56a21ac
Compare
56a21ac to
63b4e01
Compare
Summary
What:
Why:
Test Plan
Revert Plan
Issues